package cn.good.yan;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

/**
 * SpringBoot项目 - 主启动类  - 配置中心
 *  1.该服务是 配置中心 服务端 ，它负责去gitee 上获取最新的配置文件，方便客户端读最新的配置文件
 *  @EnableConfigServer 配置中心注解
 *  配置完，启动服务  访问“http://localhost:3344/master/conxx-dev.yml  可访问对应的 gitee上的对应的配置文件
 *                  访问“http://localhost:3344/conxx-dev.yml  默认访问 master分支上的配置文件
 *
 * bootstrap.yml配置文件 优先大于application.yml
 * 2. SpringCloud Bus 消息总栈
 *    需要引包： <!--添加消息总线RabbitMQ支持 - 配置中心 配置-->
 *              <dependency>
 *                  <groupId>org.springframework.cloud</groupId>
 *                  <artifactId>spring-cloud-starter-bus-amqp</artifactId>
 *              </dependency>
 *    安装RabbitMQ，并启动成功
 *    客户端这边连接上RabbitMQ
 *    一但gitee上配置中心里的配置发送改变，会通知到配置中心（3344），
 *    然后 运维工程师：发送请求：curl -X POST "http://localhost:3344/actuator/bus-refresh"
 *    配置中心（3344）接到请求，会通过消息队列，通知到每个客户端，客户端无需重启，配置文件也跟着刷新
 *    动态刷新定点通知：
 *    公式：http://localhost:配置中心的端口号/actuator/bus-refresh/{destination}
 *    例子：curl -X POST "http://localhost:3344/actuator/bus-refresh/config-client:3355"
 *    这样只更新3355这台机器上的配置，其他的客户端服务不需要刷新更新配置文件
 *
 * @author shengren.yan
 * @create 2023-09-27
 */
@EnableEurekaClient //本服务启动后会自动注册进eureka服务中
@EnableConfigServer
@SpringBootApplication
public class BootApplication {

     public static void main(String[] args) {
        SpringApplication.run(BootApplication.class, args);
     }

}